PROJECT = "led_test"
VERSION = "0.0.1"

log.info("main", PROJECT, VERSION)

sys = require("sys")

local LEDleft = gpio.setup(13, 1, gpio.PULLDOWN)
local LEDright = gpio.setup(12, 1, gpio.PULLDOWN)

sys.taskInit(function()
    local state -- !此时state是nil类型，判断为假
    while 1 do
        sys.wait(500)
        LEDleft(state and 1 or 0) -- !and 1 or 0的作用：将前面的 boolean布尔类型 进行判断，真返回1，假返回0
        state = not state
    end
end)

-- 使用计数器实现自循环
-- sys.taskInit(function()
--     local state_count = 1
--     while 1 do
--         sys.wait(500)
--         LEDleft(state_count % 2==0 and 1 or 0) -- ! 前面一定要是布尔类型，所以是==
--                                                 -- !并且因为数字都是true，所以前面一定要是boolean类型的一个变量在改变
--         log.info(state_count % 2==0,type(state_count % 2==0))
--         print(state_count % 2==0)--! 只能用print去打印布尔类型的值
--         state_count = state_count + 1
--     end
-- end)

-- 反转电平
-- sys.taskInit(function()
--     local state
--     state = not state
--     while 1 do
--         sys.wait(500)
--         LEDright(state and 1 or 0)--! LEDright(0)相当于gpio.set(13,0)
--         state = not state
--     end
-- end)

-- !用函数实现自反转电平
sys.taskInit(function()
    while 1 do
        sys.wait(500)
        -- LEDright.toggle()
        gpio.toggle(12)

    end
end)

sys.run()
